When two or more contact centers are present on a communications network it is possible to transfer/route contacts between these contact centers. This provides a better service for the customer or end user because the overall contact center resources are increased; waiting times are reduced because there are more agents overall and the range of agents with different skills is increased so that customers are more readily able to reach an agent with appropriate skills and abilities. However, the task of managing contracts in such a network of contact centers is increased in complexity as compared to the situation for a single contact center.
One such management problem is how to ensure work load is evenly distributed through the networked contact centers. Another problem concerns how to deal quickly and effectively with fault situations where there is a problem in the network or at one of the contact centers. At the same time there is a need to enable individual contact centers in the network to decide either to partake in network routing or to switch into a mode whereby only contacts received directly at that contact center are dealt with. In addition it is required that the decision to partake in network-routing be made on a contact-by-contact basis.
One of the current conventional approaches to managing contacts in a network of contact centers is described in U.S. Pat. No. 5,878,130 assigned to Geotel Communications Corp. This uses a central controller which controls distribution of all calls, irrespective of which contact center the incoming call was placed to by the caller. The central controller receives statistical information from each contact center and uses this to determine a “most available” contact center. Incoming calls arriving at the central controller are then directed to the currently “most available” contact center. A problem with this approach is that it does not consider individual agent availability. That is, no network routing is proposed after the initial network-level route. When an agent becomes available, there is no additional step which selects the longest waiting (or most suitable according to some metric) contact from the pool of contacts waiting across the network. Additionally, after transfer of a call to the “most available” contact center it may be that all suitable agents are busy with only agents with less suitable skills free, since the statistical information received from each nodal contact center can never be completely up to date. Another problem with this approach is that it does not guarantee or ensure even workload distribution between the contact centers. This is a particular problem when agents are only idle for very short times. Also, it is difficult using this method to allow individual contact centers to have some degree of autonomy because the central controller is responsible for directing all contacts.
In addition, this type of system using a central controller is very sensitive to failure at the central controller itself. A queue of contacts is maintained at the central controller as mentioned above and if this is lost due to a fault at or near that node it is complex and time consuming to rebuild the queue. In U.S. Pat. No. 5,878,130 this is addressed by using two central controllers one mirroring the other such that in the event of failure at one controller the other can take over. However this is expensive and requires data mirroring between the two controllers which need to be geographically separated to minimize the risk of both being affected by fault.
An alternative approach is for the central controller to directly monitor the activity of each agent, by receiving reports from each contact center. This enables individual agent availability to be taken into account. However, this method is still very sensitive to any failure or problem at the central controller. Should this fail then the entire queue needs to be rebuilt from scratch when service has been restored. In networked multimedia contact centers, there may be thousands of agents and millions of queued contacts at any given time, so rebuilding the queue takes considerable time and resources.
It is also possible for each contact center to maintain its own queue and deal with its own received contacts. Only when there is a shortage of resources is a contact routed to another node with spare capacity. This approach has the disadvantage that contacts are not evenly distributed through the network, and inefficiencies such as over and under staffing can occur at different times of the day at individual contact centers when in fact the network as a whole might be able to handle the aggregate contacts more efficiently.